The present invention relates to a storage virtualization switch having: a plurality of physical ports, to which at least one host computer and at least one physical storage unit can be connected; storage virtualization means for constituting at least one virtual storage unit by using a part or a whole of a storage area of the physical storage unit, and virtual target constituting means for constituting at least one virtual target, which acts as a target of the virtual storage unit with respect to the host computer.
In computer systems, a storage virtualization technology, in which a host computer recognizes combined storage areas of physical storage units, e.g., magnetic disk units, as a virtual storage unit, has been applied.
Japanese Patent Gazette No. 2005-25485 discloses a conventional technology relating to a storage virtualization switch, which virtualizes physical storages with respect to a computer system. Namely, a port ID number assigned to a virtual storage unit, which is generated by the storage virtualization switch, is made equal to that of an existing physical storage unit. By using such technology, a host computer can access the virtual storage unit with reference to the port ID number of the existing physical storage unit without stopping the computer system and changing settings.
FIG. 4 is an explanation view of a computer system A using conventional storage virtualization switches.
The computer system A shown in FIG. 4 comprises: a host computer 2; a disk enclosure 6 including a plurality of magnetic disk units 4, which act as physical storage units; and the storage virtualization switches Va. Each of the storage virtualization switches Va has a plurality of physical ports 8, to which the host computer 2 and the disk enclosure 6 are connected by fiber channel interfaces. Structures of the storage virtualization switches Va are same, so the computer system A has a redundant structure.
The structure of the storage virtualization switch Va is shown in FIG. 5.
The storage virtualization switch Va has a control section 20, which is constituted by a CPU, memories, etc. The CPU of the control section 20 executes firmwares stored in ROMs, so that the control section 20 acts as storage virtualization means 22 and effective/ineffective control means 24.
The storage virtualization switch Va further has virtual target constituting means 30, which is constituted by a CPU, LSIs, memories, etc. The CPU executes firmwares stored in ROMs and functions of the LSIs.
The storage virtualization means 22 combines parts or wholes of storage areas of the magnetic disk units 4 in the disk enclosure 6 so as to form one or a plurality of virtual storage units 10 (see FIG. 4).
The virtual target constituting means 30 constitutes virtual targets 12a, 12b and 12c; which act as targets of each of the virtual storage units 10, with respect to the host computer 2 (see FIG. 4).
The effective/ineffective control means 24 monitors conditions of the magnetic disk units 4 and paths connected to the magnetic disk units 4. The effective/ineffective control means 24 makes the virtual target constituting means 30 change the state of the virtual target, which corresponds to the magnetic disk unit 4 or the path whose condition is varied by failure, to an effective state, in which the virtual target is allowed to be connected to the host computer 2, or an ineffective state, in which the virtual target is prohibited to be connected to the host computer 2, on the basis of the variation of the monitored condition.
When the virtual target constituting means 30 puts the virtual target into the effective state on the basis of instruction from the effective/ineffective control means 24, the virtual target constituting means 30 assigns a port ID number to the virtual target. On the other hand, when the virtual target constituting means 30 puts the virtual target into the ineffective state, the virtual target constituting means 30 releases the port ID number assigned to the virtual target. Note that, releasing the port ID number assigned to the virtual target means that breaking off the correspondence relationship between the virtual target and the port ID number. The released port ID number can be assigned to another virtual target when another virtual target is newly put into the effective state.
Next, action of the effective/ineffective control means 24 and the virtual target constituting means 30 will be explained.
When the computer system A is turned on, the effective/ineffective control means 24 checks conditions of the magnetic disk units 4 and the paths connected to the magnetic disk units 4. If no failures are detected, the effective/ineffective control means 24 sends an instruction to the virtual target constituting means 30 so as to put the virtual targets 12a, 12b and 12c into the effective states, in which they can be connected to the host computer 2.
Upon receiving the instruction, the virtual target constituting means 30 puts the virtual targets 12a, 12b and 12c into the effective states and allows them to be connected to the host computer 2.
At that time, the virtual target constituting means 30 respectively assigns serial port ID numbers to the virtual targets 12a, 12b and 12c. The port ID numbers assigned to the virtual targets 12a, 12b and 12c are shown in FIG. 6A. Note that, in the shown example, highest-order digits of the port ID numbers are serial numbers.
Further, the effective/ineffective control means 24 monitors conditions of the magnetic disk units 4 and the paths connected to the magnetic disk units 4. The effective/ineffective control means 24 instructs the virtual target constituting means 30 to change the state of the virtual target, which corresponds to the magnetic disk unit 4 or the path whose condition is varied, on the basis of the variation of the monitored condition.
When the effective/ineffective control means 24 instructs to put the designated virtual target into the ineffective state, the virtual target constituting means 30 puts the designated virtual target into the ineffective state and releases the port ID number assigned to the designated virtual target, so that the assigned port ID number can be assigned to another virtual target.
On the other hand, when the effective/ineffective control means 24 instructs to put the designated virtual target into the effective state, the virtual target constituting means 30 assigns the smallest released port ID number to the designated virtual target if a released port ID number or numbers exist; the virtual target constituting means 30 generates a new port ID number, which is the next serial number following the latest released port ID number, and assigns the new port ID number to the designated virtual target if no released port ID numbers exist.
The host computer 2 identifies the virtual targets 12a, 12b and 12c on the basis of the assigned port ID numbers, so that the host computer 2 can access the object virtual storage unit or units 10.
In some cases, the port ID numbers of the virtual targets 12a, 12b and 12c are changed when the states of the virtual targets 12a, 12b and 12c are changed between the effective state and the ineffective state. By changing the port ID numbers, the host computer 2 cannot correctly identify the virtual targets when the host computer 2 accesses the virtual storage units 10.
For example, when the virtual targets 12a and 12c are put into the ineffective states from the states shown in FIG. 6A, the virtual target constituting means 30 releases the port ID numbers 101 and 301 as shown in FIG. 6B.
If the virtual target 12c is put into the effective state again, the virtual target constituting means 30 assigns the smallest port ID number 101, which is selected from the released port ID numbers 101 and 301, to the virtual target 12c (see FIG. 6C).
Next, if the virtual target 12a is put into the effective state again, the virtual target constituting means 30 assigns the released port ID number 301 to the virtual target 12a (see FIG. 6C).
By changing the states of the virtual targets 12a and 12c between the ineffective state and the effective state, the port ID number of the virtual target 12a is changed from 101 to 301; the port ID number of the virtual target 12c is changed from 301 to 101.
Therefore, the host computer 2 cannot correctly identify the object virtual targets on the basis of the port ID numbers.
If the function performed by the control section 20, which executes the firmwares, directly changes the port ID numbers of the virtual targets 12a, 12b and 12c, said problem can be solved.
However, in many cases, the virtual target constituting means 30, which is a basic switching means of the storage virtualization switch Va, is constituted by a dedicated hardware, which is separated from the control section 20 acting as the storage virtualization means 22 and the effective/ineffective control means 24. Therefore, the control section 20 cannot assign the port ID numbers, which are assigned by the virtual target constituting means 30.